using System.Collections.Generic;
using CxRomos.Core.Domain.Entities;
using StructureMap;

namespace CxRomos.Core.DataAccess {
    [PluginFamily("Default")]
    public interface IAccountRepository {
        Account GetAccountById(int accountId);
        Account GetAccountByEmail(string email);
        Account GetAccountByUsername(string username);
        void SaveAccount(Account account);
        void SaveAccount(Account account, Permission permission);
        void DeleteAccount(Account account);
        void AddPermission(Account account, Permission permission);
        List<Account> GetAllAccounts(int pageNumber);

        void CommitChanges();
    }
}